home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 22 / Cream of the Crop 22.iso / windows / wdj1096.zip / OTALA.ZIP / DEMO.CPP next >
C/C++ Source or Header  |  1996-07-11  |  3KB  |  105 lines

  1. #include <windows.h>
  2. #include "demo.h"
  3. #include "ewv.h"
  4.  
  5. #if !defined(WM_STYLECHANGING) || !defined(WM_STYLECHANGED)
  6.   #define WM_STYLECHANGING      0x007C
  7.   #define WM_STYLECHANGED       0x007D
  8. #endif // WM_STYLEC*
  9.  
  10. static void ShowMsg(HWND hParent, LPCSTR pszMsg)
  11. {
  12.     MessageBox(hParent, pszMsg, "Demo", MB_OK);
  13. }
  14.  
  15. static void ShowStatus(HWND hDlg)
  16. {
  17.     char szBuffer[128];
  18.     WORD wVer;
  19.     DWORD dwStyle;
  20.  
  21.     GetTaskExpWinVer(GetCurrentTask(), &wVer);
  22.     wsprintf(szBuffer, "%u.%02u", HIBYTE(wVer),
  23.       LOBYTE(wVer));
  24.     SetDlgItemText(hDlg, IDC_EXPWINVER, szBuffer);
  25.  
  26.     dwStyle = GetWindowLong(hDlg, GWL_STYLE);
  27.     wsprintf(szBuffer, "%lu (0x%08lx)", dwStyle, dwStyle);
  28.     SetDlgItemText(hDlg, IDC_STYLE, szBuffer);
  29.  
  30.     dwStyle = GetWindowLong(hDlg, GWL_EXSTYLE);
  31.     wsprintf(szBuffer, "%lu (0x%08lx)", dwStyle, dwStyle);
  32.     SetDlgItemText(hDlg, IDC_EXSTYLE, szBuffer);
  33. }
  34.  
  35. extern "C" BOOL CALLBACK __export TestDlgProc(HWND hDlg,
  36.   UINT uMsg, WPARAM wParam, LPARAM lParam)
  37. {
  38.     switch (uMsg)
  39.     {
  40.         case WM_INITDIALOG:
  41.             SetDlgItemText(hDlg, IDC_TAG, LPCSTR(lParam));
  42.             ShowStatus(hDlg);
  43.             return (TRUE);
  44.  
  45.         case WM_STYLECHANGING:
  46.             ShowMsg(hDlg, "WM_STYLECHANGING");
  47.             break;
  48.  
  49.         case WM_STYLECHANGED:
  50.             ShowMsg(hDlg, "WM_STYLECHANGED");
  51.             break;
  52.  
  53.         case WM_COMMAND:
  54.             switch (LOWORD(wParam))
  55.             {
  56.                 case IDC_CHANGE:
  57.                     SetWindowLong(hDlg, GWL_STYLE,
  58.                       GetWindowLong(hDlg, GWL_STYLE) ^
  59.                       (WS_MINIMIZEBOX | WS_MAXIMIZEBOX)); 
  60.                     ShowStatus(hDlg);
  61.                     RedrawWindow(hDlg, NULL, NULL,
  62.                       RDW_FRAME | RDW_INTERNALPAINT |
  63.                       RDW_INVALIDATE);
  64.                     return (TRUE);
  65.  
  66.                 case IDOK:
  67.                 case IDCANCEL:
  68.                     EndDialog(hDlg, 0);
  69.                     return (TRUE);
  70.             }
  71.             break;
  72.     }
  73.     return (FALSE);
  74. }
  75.  
  76. int PASCAL WinMain(HINSTANCE hInst, HINSTANCE hPrevInst,
  77.   LPSTR /*pszCmdLine*/, int /*nCmdShow*/)
  78. {
  79.     if (!IsWin95())
  80.     {
  81.         ShowMsg(NULL, "Not running on Win95!");
  82.         return (1);
  83.     }
  84.     if (hPrevInst != NULL)
  85.     {
  86.         ShowMsg(NULL, "Single instance only!");
  87.         return (2);
  88.     }
  89.         
  90.     DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_TEST), NULL,
  91.       TestDlgProc, LPARAM(LPCSTR("Marked as Win3x app")));
  92.  
  93.     SetModuleExpWinVer(hInst, 0x0400);
  94.     SetTaskExpWinVer(GetCurrentTask(), 0x0400);
  95.  
  96.     DialogBoxParam(hInst, MAKEINTRESOURCE(IDD_TEST), NULL,
  97.       TestDlgProc, LPARAM(LPCSTR("Marked as Win95 app")));
  98.  
  99.     SetModuleExpWinVer(hInst, 0x030a);
  100.     SetTaskExpWinVer(GetCurrentTask(), 0x030a);
  101.  
  102.     return (0);
  103. }
  104.  
  105.